﻿using System;

namespace DimensionsHelper.Common.Contracts.Metadata;

/// <summary>
///     标记元数据使用的枚举类别，标记此特性的类别，在载入XML文档时，应当使用枚举名称读取
/// </summary>
[AttributeUsage(AttributeTargets.Enum)]
public class MetadataFlagAttribute(MetadataScriptSerializeType enumType) : Attribute
{
    /// <summary>
    ///     枚举类型的序列化操作类型。
    /// </summary>
    public MetadataScriptSerializeType EnumSerializeType { get; } = enumType;
}

/// <summary>
///     提示序列化和反序列化MDM文档时，使用枚举的值或者名称。
/// </summary>
public enum MetadataScriptSerializeType
{
    /// <summary>
    ///     使用枚举名称。
    /// </summary>
    Name,

    /// <summary>
    ///     使用枚举值。
    /// </summary>
    Value,

    /// <summary>
    ///     二进制值。
    /// </summary>
    BitValue
}